﻿namespace Raven
{
    public abstract class GoalEvaluator
    {
        //when the desirability score for a goal has been evaluated it is multiplied 
        //by this value. It can be used to create bots with preferences based upon
        //their personality
        protected Fix _characterBias;

        public GoalEvaluator(Fix characterBias)
        {
            _characterBias = characterBias;
        }

        //returns a score between 0 and 1 representing the desirability of the
        //strategy the concrete subclass represents
        public abstract Fix CalculateDesirability(RavenBot pBot);

        //adds the appropriate goal to the given bot's brain
        public abstract void SetGoal(RavenBot pBot);
    }
}